/**
 * 图片URL处理工具函数
 */

// 获取后端API基础URL，如果没有在环境变量中设置，则默认使用后端地址
const API_BASE_URL = import.meta.env.VITE_API_BASE_URL || 'http://localhost:3000';

// 后端图片服务器基础URL，如果没有单独设置，则使用API基础URL
const IMAGE_SERVER_URL = import.meta.env.VITE_IMAGE_SERVER_URL || API_BASE_URL;

/**
 * 将图片URL转换为后端完整URL
 * @param {string} url - 原始图片URL
 * @returns {string} - 转换后的完整URL
 */
export function getImageUrl(url) {
  if (!url) {
    return 'https://via.placeholder.com/300'; // 默认图片
  }

  // 如果已经是完整URL（以http://或https://开头），则直接返回
  if (url.startsWith('http://') || url.startsWith('https://')) {
    // 如果是localhost的URL，需要替换为后端URL
    if (url.includes('localhost:')) {
      // 从URL中提取路径部分，例如从http://localhost:5173/images/products/123.png提取/images/products/123.png
      const pathMatch = url.match(/localhost:[0-9]+(.+)/);
      if (pathMatch && pathMatch[1]) {
        return `${IMAGE_SERVER_URL}${pathMatch[1]}`;
      }
    }
    return url;
  }

  // 如果以/开头，说明是相对于域名根目录的路径
  if (url.startsWith('/')) {
    return `${IMAGE_SERVER_URL}${url}`;
  }

  // 其他情况，拼接API基础URL
  return `${IMAGE_SERVER_URL}/${url}`;
}

/**
 * 批量处理图片URL数组
 * @param {Array<string>} urls - 图片URL数组 
 * @returns {Array<string>} - 处理后的URL数组
 */
export function getImageUrls(urls) {
  if (!Array.isArray(urls)) {
    return [];
  }
  return urls.map(url => getImageUrl(url));
}

export default {
  getImageUrl,
  getImageUrls
}; 